package DataLayer.KnowledgeBase;

public interface IKnowledgeBaseControl {

    /**
     * Returns the knowledgebase.
     * @return - The knowledgebase.
     */
    KnowledgeBase getKnowledgeBase();
    
    /**
     * Loads a knowledgebase from the path specified
     * @param path - The path.
     */
    void loadKnowledgeBase(String path);

    /**
     * Loads and merges knowledgebase from the path specified
     * @param path - The path.
     */
    void loadAndMergeKnowledgeBase(String path);

    /**
     * Merges the actual knowledgebase withe the one in the parameterlist.
     * @param secondKBase - The knowledgebase.
     */
    void mergeKnowledgeBase(KnowledgeBase secondKBase);

    /**
     * Writes the knowledgebase to the hard drive.
     * @return
     */
    boolean exportKnowledgeBase(String exportPath);

    /**
     * Transforms the knowledgebase into a file directory and saves it.
     */
    void transformKnowledgeBase();
}
